
//1537.最大得分
class Solution {
    #define MOD 1000000007
public:
    int maxSum(vector<int>& nums1, vector<int>& nums2) {
        //找两个数组中的相同位置
        int i=0,j=0;
        int n=nums1.size(),m=nums2.size();
        long long sum1=0,sum2=0; //使用long long来解决越界情况
        long long ret=0;
        while(i<n&&j<m)
        {   
            if(nums1[i]>nums2[j]) sum2+=nums2[j++];
            else if(nums1[i]<nums2[j]) sum1+=nums1[i++];
            else   //相等
            {
                ret=ret+max(sum1,sum2);
                sum1=nums1[i++],sum2=nums2[j++];
            }
        }

        while(i<n) sum1+=nums1[i++];
        while(j<m) sum2+=nums2[j++];
        ret+=max(sum1,sum2);

        return ret%MOD;
    }
};